Content-addressable memory (CAM) devices are typically used in applications requiring fast recognition or validation of a binary pattern. CAM devices can provide a match/no match signal, indicating whether it contains the pattern, in one step. Random Access Memory (RAM) devices, like CAM devices, also store binary patterns. Unlike CAMs, however, pattern retrieval from RAM is much more tedious.
Normally, a system retrieves the pattern from the RAM by addressing a location where the pattern is stored. If the system knows the location of the pattern, the retrieval process is easy. If the system does not know the pattern's location but must nevertheless validate the pattern's presence in the RAM, the system must then use an iterative read and compare process to find the pattern. The system must read each memory location and compare the stored data with the pattern. If it does not find a match, the system must then read the next memory location, repeating the comparison. The system is required to continue this process until it finds a matching pattern or it has searched the complete memory without producing a match. Clearly, this RAM validation process, on average, requires many steps. It is, therefore, significantly less efficient than the CAM validation process, which requires only one step to validate the pattern.
In addition to pattern validation, CAM devices are also used for pattern translation. A CAM-based design would be an ideal solution for fast pattern validation and translation applications such as required in Asynchronous Transfer Mode (ATM) communication switching systems, if not for several significant shortcomings.
First, compared to RAM devices, CAM devices have very limited pattern capacity. Currently, the highest CAM capacity is 4K 32-bit patterns, compared to RAM capacities of 32 Mbits or more. Second, CAM devices dissipate much more power than RAM devices. Although the CAM architecture is similarly scalable like RAM architecture, RAM may be scaled in larger increments. Third, the cost of CAM devices is much higher than RAM devices of similar size and access times. Driven by its use in many wide-ranging applications, the RAM technology continues to advance, particularly in computers. CAM devices, on the other hand, are more specialized and have much more limited uses. As such, CAM technology has not advanced as rapidly. Only a modest increase in bit capacity and a modest decrease in cost may be expected in the future. Fourth and finally, RAM devices are available from many vendors and in many different configurations, allowing users to more easily select the devices most suited for their needs.
Despite these substantial shortcomings, CAM devices possess a pattern validation speed that RAM devices cannot match. Designers developing applications requiring the validation and translation of a large number of patterns have faced a dilemma. Large-scale CAM devices are cost-prohibitive, while RAM devices are unacceptable due to slow pattern validation.